Skip to content

feat: Add example configuration with docker-compose local lab#157

Closed
neilkuan wants to merge 5 commits intomainfrom
feat/add-sasuke-character
Closed

feat: Add example configuration with docker-compose local lab#157
neilkuan wants to merge 5 commits intomainfrom
feat/add-sasuke-character

Conversation

@neilkuan
Copy link
Copy Markdown
Contributor

@neilkuan neilkuan commented Apr 9, 2026

Problem / Motivation

Currently, there is no easy way for users to quickly set up and test OpenAB with both Kiro and Claude agents. Users need to manually configure each component, understand the directory structure, and set up Discord bot integrations without clear guidance.

What This PR Does

This PR provides a complete, ready-to-use example setup that:

  1. Simplifies Deployment - Adds Docker Compose configuration for one-command deployment of both agents
  2. Provides Character Examples - Includes two distinct character personalities:
    • Jiraiya (Pervy Sage) for Kiro agent - humorous and wise
    • Uchiha Sasuke for Claude agent - cold and direct
  3. Clear Documentation - Comprehensive EXAMPLE.md with setup instructions, authentication steps, and configuration guide
  4. Template Configurations - Pre-configured TOML files for both agents with clear placeholders for Discord bot tokens

Benefits

  • Faster Onboarding: New users can get started in minutes instead of hours
  • Best Practice Reference: Demonstrates proper directory structure and configuration patterns
  • Multi-language Support: Characters respond in the same language as user questions
  • Production-Ready: Includes proper volume mounts for data persistence and debug logging

Files Added

  • example/docker-compose.yml - Docker Compose orchestration
  • example/EXAMPLE.md - Complete usage guide
  • example/data/config/kiro/config.toml - Kiro agent configuration template
  • example/data/config/claude/config.toml - Claude agent configuration template
  • example/data/home/agent/.kiro/steering/IDENTITY.md - Jiraiya character definition
  • example/data/home/agent/.kiro/steering/MEMORY.md - Kiro memory file
  • example/data/home/node/.claude/CLAUDE.md - Sasuke character definition
  • example/data/home/node/.claude/MEMORY.md - Claude memory file
  • Updated .gitignore to track example configuration files

- Replace Jiraiya character with Uchiha Sasuke in Claude agent
- Add example configuration files for both Kiro and Claude agents
- Add EXAMPLE.md with Docker Compose usage instructions
- Update .gitignore to track example configuration files
@neilkuan neilkuan requested a review from thepagent as a code owner April 9, 2026 06:02
@neilkuan neilkuan marked this pull request as draft April 9, 2026 06:21
@neilkuan neilkuan changed the title feat: Add Sasuke character and example configuration feat: Add example configuration with docker-compose local lab Apr 10, 2026
Copy link
Copy Markdown
Collaborator

@chaodu-agent chaodu-agent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Needs Rebase — Good onboarding example, but stale (22 days) with merge conflicts and several issues to address.

Baseline Check (Step 0)
Field Value
State OPEN
Mergeable CONFLICTING
Created 2026-04-09 (22 days ago)
Last commit 2026-04-09
Author @neilkuan
Changes +352 / -1
Labels closing-soon

Main has: No example/ directory, no docker-compose setup. config.toml.example exists with all agent presets documented. docs/msteams-selfhosted.md has a docker-compose example for MS Teams gateway. All content in this PR is net-new.

四問框架

1. 解決什麼問題

New users lack a quick-start path to run OpenAB locally with multiple agents. Currently they must manually configure each component by reading chart templates and config.toml.example.

2. 怎麼解決

Adds a complete example/ directory with docker-compose.yml, two agent configs (kiro + claude), character personality files (Jiraiya + Sasuke), and a step-by-step EXAMPLE.md guide.

3. 考慮過什麼

Uses existing published container images (ghcr.io/openabdev/openab:latest and openab-claude:latest). Volume mounts for persistence. Separate config per agent.

4. 最佳方案嗎

The approach is sound but has several issues (see below).

🟢 INFO

  • Net-new value: first docker-compose quick-start for the project
  • Character personalities (Jiraiya/Sasuke) are fun and demonstrate AGENTS.md/CLAUDE.md customization
  • Clear separation of kiro vs claude config files
  • EXAMPLE.md covers auth flow for both agents

🟡 NIT

  1. Volume paths are wrongdocker-compose.yml mounts ./example/data/home/agent:/home/agent but the compose file itself lives inside example/. If you run docker-compose up from example/, the path should be ./data/home/agent:/home/agent. If run from repo root, it should be docker compose -f example/docker-compose.yml up and the paths need adjusting.

  2. Missing newline at EOFdocker-compose.yml, CLAUDE.md, and MEMORY.md are missing trailing newlines (POSIX compliance).

  3. .gitignore removes config.toml globally — The PR removes the config.toml line from .gitignore (the -1 deletion). This means the root config.toml (user's actual config with bot tokens) would no longer be gitignored. This is a security risk — users could accidentally commit their bot tokens. The intent was probably to track example/data/config/*/config.toml while keeping root config.toml ignored.

  4. No .env or env var approach for secrets — The config.toml files have REPLACE_WITH_YOUR_DISCORD_BOT_TOKEN placeholders. Consider using ${DISCORD_BOT_TOKEN} env var interpolation (which OpenAB already supports) + a .env.example file, matching the pattern in config.toml.example.

  5. EXAMPLE.md references docker-compose (v1) — The project's other docs use docker compose (v2 plugin syntax). Should be consistent.

  6. Character files have prompt injection protection rules — The "Absolute Confidentiality Rules" for ~/.kiro in both character files are example-specific and could confuse users who copy-paste them. Consider simplifying or noting these are optional personality examples.

🔴 SUGGESTED CHANGES

  1. Merge conflict — PR status is CONFLICTING. Needs rebase onto current main.

  2. .gitignore regression — Removing config.toml from root .gitignore is dangerous. Fix: keep config.toml in root .gitignore and add specific !example/data/config/*/config.toml exceptions.

  3. Volume path mismatch — The docker-compose volume paths assume running from repo root but the file lives in example/. Pick one convention and document it clearly in EXAMPLE.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

closing-soon PR missing Discord Discussion URL — will auto-close in 3 days needs-rebase pending-contributor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants